<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>正则表达式的基本使用</title>
</head>
<body>
    <script>
        const str = '我在黑马学前端'
        const regex = /前端/
        // 包含则返回 true
        console.log(regex.test(str));
        // 包含则返回数组
        console.log(regex.exec(str));

        console.log('---------------------------------------------');
        console.log('^以什么开始');
        console.log(/^哈/.test('哈哈')); // true
        console.log('$以什么结束，精确匹配，只能匹配一个，如需匹配多个需要加入量词');
        console.log(/^哈$/.test('哈')); // true
        console.log(/^哈$/.test('哈哈')); // false

        console.log('---------------------------------------------');
        console.log('*重复0次或多次');
        console.log(/^哈*$/.test('哈哈哈哈')); // true
        console.log(/^哈*$/.test('哈二哈')); // false
        console.log('+重复1次或多次');
        console.log(/^哈+$/.test('哈哈哈哈')); // true
        console.log(/^哈+$/.test('哈二哈')); // false
        console.log('?重复0次或1次');
        console.log(/^哈?$/.test('哈哈哈哈')); // false
        console.log(/^哈?$/.test('哈二哈')); // false
        console.log(/^哈?$/.test('二哈')); // false

        console.log('---------------------------------------------');
        console.log('{n}重复n次');
        console.log(/^哈{4}$/.test('哈哈哈哈')); // true
        console.log('{n,}重复n次或更多次');
        console.log(/^哈{4,}$/.test('哈哈哈哈哈哈')); // true
        console.log('{n,m}重复n次到m次');
        console.log(/^哈{4,6}$/.test('哈哈哈哈哈哈哈')); // false

        console.log('---------------------------------------------');
        console.log('[]其中有一个匹配则返回true');
        console.log(/^[abc]$/.test('a')); // true
        console.log(/^[abc]$/.test('abc')); // false 只匹配其中一个，多个匹配则为false
        console.log(/^[a-zA-Z0-9]$/.test('s')); // true

        console.log('---------------------------------------------');
        console.log('\\d匹配0-9之间的任一数字，相当于[0-9]');
        console.log('\\D匹配所有0-9以外的字符，相当于[^0-9]');
        console.log('\\w匹配任意的字母、数字和下划线，相当于[A-Za-z0-9]');
        console.log('\\W除所有字母、数字和下划线以外的字符，相当于[^A-Za-z0-9_]');
        console.log('\\s匹配空格（包括换行符、制表符、空格符等），相等于[\t\r\n\v\f]');
        console.log('\\S匹配非空格的字符，相当于[^\t\r\n\v\f]');

        console.log('---------------------------------------------');
        console.log('i是单词ignore的缩写，正则匹配时字母不区分大小写');
        console.log(/^java$/i.test('JAVA')); // true
        console.log('g是单词global的缩写，匹配所有满足正则表达式的结果');
        const string = 'Java是一门编程语言，学完java工资很高'
        const regexString = string.replace(/java/ig,'前端')
        console.log(regexString);
    </script>
</body>
</html>